//package com.world.rickcloudendpoint.algorithm;
//
//import io.swagger.models.auth.In;
//
//import java.util.Random;
//import java.util.Vector;
//
///**
// * @description:
// * @author: jlsong
// * @date: 2021/12/27 22:39:24
// * @version: 1.0
// */
//public class Ant implements Cloneable {
//
//    private Vector<Integer> tabu;// 禁忌表
//    private Vector<Integer> allowedCities; //允许搜索的城市
//    private float[][] delta; //信息数变化矩阵
//    private int[][] distance; //距离矩阵
//
//    private float alpha;
//    private float beta;
//
//    private int tourLength; // 路径长度
//    private int cityNum; // 城市数量
//
//    private int firstCity; // 起始城市
//    private int currentCity;// 当前城市
//
//    public Ant() {
//        cityNum = 30;
//        tourLength = 0;
//    }
//
//    /**
//     *
//     * @param num 蚂蚁数量
//     */
//    public Ant(int num) {
//        this.cityNum = num;
//        tourLength = 0;
//    }
//
//    /**
//     * 初始化蚂蚁，随机选择起始位置
//     * @param distance 距离矩阵
//     * @param a alpha
//     * @param b beta
//     */
//    public void init(int[][] distance, float a, float b){
//         alpha = a;
//         beta = b;
//         allowedCities = new Vector<>();
//         tabu = new Vector<>();
//         this.distance = distance;
//         delta = new float[cityNum][cityNum];
//         for (int i = 0; i < cityNum; i++){
//             Integer integer = new Integer();
//             allowedCities.add(integer);
//             for (int j = 0; j < cityNum; j++){
//                 delta[i][j] = 0.f;
//             }
//         }
//
//        Random random = new Random(System.currentTimeMillis());
//         firstCity = random.nextInt(cityNum);
//         for (Integer i: allowedCities){
//             if (i.intValue() == firstCity){
//                 allowedCities.remove(i);
//                 break;;
//             }
//         }
//    }
//}
